/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Fachada;

import DAO.*;
import Modelo.*;
import Utilitarios.*;
import java.util.*;
import java.sql.SQLException;
import javax.swing.JOptionPane;
/**
 * @author everson
 */
public class Fachada {
  private ConectarMySQL conn = null;

   public Fachada(){
        this.conn = ConectarMySQL.getInstance();
    }

    /**
     * @return the conn
     */
    public ConectarMySQL getConn() {
        return conn;
    }

    /**
     * @param conn the conn to set
     */
    public void setConn(ConectarMySQL conn) {
        this.conn = conn;
    }

    // Início dos Métodos da Fachada.
    // *****************************************************************************************************************
    // *****************************************************************************************************************
    // TABELA DAS CIDADE
    
    public ArrayList<Cidade> listagemGeralCidade() {
         ArrayList obj = new ArrayList();
       try {
           DAOCidade meuDAO = new DAOCidade(this.getConn());
           obj = meuDAO.list();
        } catch (Exception exception) {
           // System.out.println("Listagem dos Setores não foi localizada.");
      }
       return obj;
    }

    public int inserirCidade(Cidade obj) {
       int retorno = 0;
       try {
          DAOCidade meuDAO = new DAOCidade(this.getConn());
          retorno = meuDAO.insere(obj);
       } catch (Exception exception) {
          System.out.println("Inclusão não foi realizada - Ocorrencia.");
//          String mensRetorno = exception.getMessage();
//          int seTem = mensRetorno.indexOf("Duplicate");
//          if (seTem > 0)
//             JOptionPane.showMessageDialog(null,"Este CÓDIGO já está cadastrado no Sistema. Verifique!!!");
       }
       return retorno;
    }

    public int alterarCidade(Cidade obj) {
       int retorno = 0;
       try {
          DAOCidade meuDAO = new DAOCidade(this.getConn());
          retorno = meuDAO.altera(obj);
       } catch (Exception exception) {
          System.out.println("Alteração não foi realizada - Ocorrencia.");
       }
       return retorno;
    }

    public int excluiRegistroCidade(Cidade obj) {
       int retorno = 0;
       try {
          DAOCidade meuDAO = new DAOCidade(this.getConn());
          retorno = meuDAO.exclui(obj);
       } catch (Exception exception) {
          System.out.println("Exclusão não foi realizada - Ocorrencia.");
          }
       return retorno;
    }

    public int pegaIdCidade(String descricao) {
       int retorno = 0;
       try {
          DAOCidade meuDAO = new DAOCidade(this.getConn());
          retorno = meuDAO.pegaIdCidade(descricao);
       } catch (Exception exception) {
          System.out.println("Não Foi Possivel Pegar o Código da Cidade - Verifique - "+descricao);
       }
       return retorno;
    }
    
    // Fim dos Métodos da Fachada CIDADE.

    // *****************************************************************************************************************
    // *****************************************************************************************************************
    // TABELA DOS INTERESSADOS DOS PROCESSOS
    
    public ArrayList<Cadastro> listagemGeralCadastro() {
         ArrayList obj = new ArrayList();
       try {
           DAOCadastro meuDAO = new DAOCadastro(this.getConn());
           obj = meuDAO.list();
        } catch (Exception exception) {
           // System.out.println("Listagem dos Setores não foi localizada.");
      }
       return obj;
    }

    public int inserirCadastro(Cadastro obj) {
       int retorno = 0;
       try {
          DAOCadastro meuDAO = new DAOCadastro(this.getConn());
          retorno = meuDAO.insere(obj);
       } catch (Exception exception) {
          System.out.println("Inclusão não foi realizada - Ocorrencia.");
//          String mensRetorno = exception.getMessage();
//          int seTem = mensRetorno.indexOf("Duplicate");
//          if (seTem > 0)
//             JOptionPane.showMessageDialog(null,"Este CÓDIGO já está cadastrado no Sistema. Verifique!!!");
       }
       return retorno;
    }

    public int alterarCadastro(Cadastro obj) {
       int retorno = 0;
       try {
          DAOCadastro meuDAO = new DAOCadastro(this.getConn());
          retorno = meuDAO.altera(obj);
       } catch (Exception exception) {
          System.out.println("Alteração não foi realizada - Ocorrencia.");
       }
       return retorno;
    }

    public int excluiRegistroCadastro(Cadastro obj) {
       int retorno = 0;
       try {
          DAOCadastro meuDAO = new DAOCadastro(this.getConn());
          retorno = meuDAO.exclui(obj);
       } catch (Exception exception) {
          System.out.println("Exclusão não foi realizada - Ocorrencia.");
          }
       return retorno;
    }

    public ArrayList<Cadastro> listagemFiltro(String qualFiltro) {
         ArrayList obj = new ArrayList();
       try {
           DAOCadastro meuDAO = new DAOCadastro(this.getConn());
           obj = meuDAO.listFiltro(qualFiltro);
        } catch (Exception exception) {
           // System.out.println("Listagem dos Setores não foi localizada.");
      }
       return obj;
    }

    public boolean jaTemCadastro(String jaTemCadastro) {
       boolean retorno = true;
       try {
           DAOCadastro meuDAO = new DAOCadastro(this.getConn());
           retorno = meuDAO.temCadastro(jaTemCadastro);
        } catch (Exception exception) {
           // System.out.println("Listagem dos Setores não foi localizada.");
      }
       return retorno;
    }
    
    // Fim dos Métodos da Fachada INTERESSADOS DOS PROCESSOS.

    // *****************************************************************************************************************
    // *****************************************************************************************************************
    // TABELA DOS TIPOS DE DESPACHOS
    
    public ArrayList<Despacho> listagemGeralDespacho() {
         ArrayList obj = new ArrayList();
       try {
           DAODespacho meuDAO = new DAODespacho(this.getConn());
           obj = meuDAO.list();
        } catch (Exception exception) {
           // System.out.println("Listagem dos Setores não foi localizada.");
      }
       return obj;
    }

    public int inserirDespacho(Despacho obj) {
       int retorno = 0;
       try {
          DAODespacho meuDAO = new DAODespacho(this.getConn());
          retorno = meuDAO.insere(obj);
       } catch (Exception exception) {
          System.out.println("Inclusão não foi realizada - Ocorrencia.");
//          String mensRetorno = exception.getMessage();
//          int seTem = mensRetorno.indexOf("Duplicate");
//          if (seTem > 0)
//             JOptionPane.showMessageDialog(null,"Este CÓDIGO já está cadastrado no Sistema. Verifique!!!");
       }
       return retorno;
    }

    public int alterarDespacho(Despacho obj) {
       int retorno = 0;
       try {
          DAODespacho meuDAO = new DAODespacho(this.getConn());
          retorno = meuDAO.altera(obj);
       } catch (Exception exception) {
          System.out.println("Alteração não foi realizada - Ocorrencia.");
       }
       return retorno;
    }

    public int excluiRegistroDespacho(Despacho obj) {
       int retorno = 0;
       try {
          DAODespacho meuDAO = new DAODespacho(this.getConn());
          retorno = meuDAO.exclui(obj);
       } catch (Exception exception) {
          System.out.println("Exclusão não foi realizada - Ocorrencia.");
          }
       return retorno;
    }

    public int pegaIdDespacho(String descricao) {
       int retorno = 0;
       try {
          DAODespacho meuDAO = new DAODespacho(this.getConn());
          retorno = meuDAO.pegaIdDespacho(descricao);
       } catch (Exception exception) {
          System.out.println("Não Foi Possivel Pegar o Código da Cidade - Verifique - "+descricao);
       }
       return retorno;
    }
    
    // Fim dos Métodos da Fachada DOS TIPOS DE DESPACHOS.

    // *****************************************************************************************************************
    // *****************************************************************************************************************
    // TABELA TIPOS DE PROCESSOS
    
    public ArrayList<TipoProcesso> listagemGeralTipoProcesso() {
         ArrayList obj = new ArrayList();
       try {
           DAOTipoProcesso meuDAO = new DAOTipoProcesso(this.getConn());
           obj = meuDAO.list();
        } catch (Exception exception) {
           // System.out.println("Listagem dos Setores não foi localizada.");
      }
       return obj;
    }

    public int inserirTipoProcesso(TipoProcesso obj) {
       int retorno = 0;
       try {
          DAOTipoProcesso meuDAO = new DAOTipoProcesso(this.getConn());
          retorno = meuDAO.insere(obj);
       } catch (Exception exception) {
          System.out.println("Inclusão não foi realizada - Ocorrencia.");
//          String mensRetorno = exception.getMessage();
//          int seTem = mensRetorno.indexOf("Duplicate");
//          if (seTem > 0)
//             JOptionPane.showMessageDialog(null,"Este CÓDIGO já está cadastrado no Sistema. Verifique!!!");
       }
       return retorno;
    }

    public int alterarTipoProcesso(TipoProcesso obj) {
       int retorno = 0;
       try {
          DAOTipoProcesso meuDAO = new DAOTipoProcesso(this.getConn());
          retorno = meuDAO.altera(obj);
       } catch (Exception exception) {
          System.out.println("Alteração não foi realizada - Ocorrencia.");
       }
       return retorno;
    }

    public int excluiRegistroTipoProcesso(TipoProcesso obj) {
       int retorno = 0;
       try {
          DAOTipoProcesso meuDAO = new DAOTipoProcesso(this.getConn());
          retorno = meuDAO.exclui(obj);
       } catch (Exception exception) {
          System.out.println("Exclusão não foi realizada - Ocorrencia.");
          }
       return retorno;
    }

    public int pegaIdTipoProcesso(String descricao) {
       int retorno = 0;
       try {
          DAOTipoProcesso meuDAO = new DAOTipoProcesso(this.getConn());
          retorno = meuDAO.pegaIdTipoProcesso(descricao);
       } catch (Exception exception) {
          System.out.println("Não Foi Possivel Pegar o Código da Cidade - Verifique - "+descricao);
       }
       return retorno;
    }
    
    // Fim dos Métodos da Fachada TIPOS DE PROCESSOS.

    // *****************************************************************************************************************
    // *****************************************************************************************************************
    // TABELA DOS SETORES DO DER
    
    public ArrayList<Setor> listagemGeralSetor() {
         ArrayList obj = new ArrayList();
       try {
           DAOSetor meuDAO = new DAOSetor(this.getConn());
           obj = meuDAO.list();
        } catch (Exception exception) {
           // System.out.println("Listagem dos Setores não foi localizada.");
      }
       return obj;
    }

    public int inserirSetor(Setor obj) {
       int retorno = 0;
       try {
          DAOSetor meuDAO = new DAOSetor(this.getConn());
          retorno = meuDAO.insere(obj);
       } catch (Exception exception) {
          System.out.println("Inclusão não foi realizada - Ocorrencia.");
//          String mensRetorno = exception.getMessage();
//          int seTem = mensRetorno.indexOf("Duplicate");
//          if (seTem > 0)
//             JOptionPane.showMessageDialog(null,"Este CÓDIGO já está cadastrado no Sistema. Verifique!!!");
       }
       return retorno;
    }

    public int alterarSetor(Setor obj) {
       int retorno = 0;
       try {
          DAOSetor meuDAO = new DAOSetor(this.getConn());
          retorno = meuDAO.altera(obj);
       } catch (Exception exception) {
          System.out.println("Alteração não foi realizada - Ocorrencia.");
       }
       return retorno;
    }

    public int excluiRegistroSetor(Setor obj) {
       int retorno = 0;
       try {
          DAOSetor meuDAO = new DAOSetor(this.getConn());
          retorno = meuDAO.exclui(obj);
       } catch (Exception exception) {
          System.out.println("Exclusão não foi realizada - Ocorrencia.");
          }
       return retorno;
    }

    public int pegaIdSetor(String descricao) {
       int retorno = 0;
       try {
          DAOSetor meuDAO = new DAOSetor(this.getConn());
          retorno = meuDAO.pegaIdSetor(descricao);
       } catch (Exception exception) {
          System.out.println("Não Foi Possivel Pegar o Código da Cidade - Verifique - "+descricao);
       }
       return retorno;
    }
    
    // Fim dos Métodos da Fachada SETORES DO DER-PB.

    // *****************************************************************************************************************
    // *****************************************************************************************************************
    // TABELA DOS     
}
